home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d20
/
autohtc.arc
/
AUTOHTC.PRG
< prev
next >
Wrap
Text File
|
1991-08-23
|
7KB
|
230 lines
*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*:::: BMMENU.prg
*:::: Startprogramm für BM-Menüsystem
*:::: (c) 1990 by B. Matthias
*:::: Alle Rechte bei Systemberatung B. Matthias
*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# include data.hdr
# include database.hdr
# include date.hdr
# include error.hdr
# include fileio.hdr
# include io.hdr
# include keys.hdr
# include string.hdr
# include system.hdr
# include JDstr.hdr
# include JDfil.hdr
vardef && Variablendeklaration
uint HOWMANY && Wieviel Files gefunden
char(12) FNAME[64] && Filenamen
ulong FSIZE[64] && Filegroesse
char(8) FDATE[64] && Filedatum
char(6) FTIME[64] && Filezeit
char(6) FATTR[64] && Fileattribut
logical ANYOTHERS && Nochmehr Files
int(1) OPTION=1 && Menüoption
uint I && Zähler
uint IDX
uint BONNY
logical OK=.T. && OK-Abfrage
byte COL_NO && Farbcode
char(30) M_VAR
char(255) M_FBBS && Puffer für FILES.BBS
char(1) M_TRENN && Trennzeichen
char(255) M_HPFAD[50] && Pfade zum Hatchen
char(20) M_HNAME[50] && Hatchname
file M_BBS && Datei FILES.BBS
file M_CFG && Datei AUTOHTC.CFG
int(2) M_AHATCH && Anzahl Areas zum Hatchen
char(50) M_DESC && File-Beschreibung
char(8) M_DATE && File-Datum
char M_COMMAND && Hatch-Kommandozeile
uint CDIR
char OVERCOME && DOS Parameter
char OVERGOT && Übernommener Parameter
enddef
*
*-------------------------------------------------------------------------------
* Prozedur: Fehlermeldung anzeigen und Ende
*
Procedure ERROR_PROC
clear
? str(__errcode,4,0)+" "+e_message()
quit
endpro
*
*-------------------------------------------------------------------------------
* Prozedur: Startbildschirm anzeigen
*
Procedure ShowHeader
clear
set color to "B/BG"
@ 0, 0 say " BM-Hatch v1.1ß (c) 1990 by B. Matthias - Automatic hatch of files "+dtoc(today())+" "
@ 24, 0 say " ----- You find me at Fidonet 2:245/60 ----- "
set color to "W/B"
@ 1, 0 clear to 23,79
@ 1, 0 say ""
endpro
*
*-------------------------------------------------------------------------------
* Funktion: Control-File lesen
* Rückgabe: keine
*
function logical READCFG
if .not. f_open(M_CFG, "AUTOHTC.CFG", &F_READ)
return .F.
endif
M_AHATCH=0
do while .not. f_eof(M_CFG) .and. M_AHATCH<50
OK=f_getln(M_CFG, M_HPFAD[M_AHATCH])
M_HNAME[M_AHATCH]=alltrim(substr(M_HPFAD[M_AHATCH],at(chr(32),M_HPFAD[M_AHATCH]),20))
M_HPFAD[M_AHATCH]=substr(M_HPFAD[M_AHATCH],1,at(chr(32),M_HPFAD[M_AHATCH])+1)
M_AHATCH=M_AHATCH+1
enddo
f_close(M_CFG)
return .T.
endpro
*
*-------------------------------------------------------------------------------
* Funktion: Files.Bbs einlesen
* Rückgabe: keine
*
function logical READBBS
if .not. f_open(M_BBS, rtrim(M_HPFAD[I])+"\FILES.BBS", &F_READ)
return .F.
endif
do while .not. f_eof(M_BBS) .and. IDX<250
OK=f_getln(M_BBS, M_FBBS)
if trim(substr(M_FBBS,1,12))=rtrim(FNAME[IDX])
M_DESC=rtrim(substr(M_FBBS,at(M_TRENN,M_FBBS)+2,50))
f_close(M_BBS)
return .T.
endif
enddo
f_close(M_BBS)
return .F.
endpro
*
*-------------------------------------------------------------------------------
* Prozedur: Fileverzeichnis lesen
*
Procedure HATCH
CDIR=1
repeat
HOWMANY=adir(rtrim(M_HPFAD[I])+"\*.*", FNAME[], FSIZE[], FDATE[], FTIME[], FATTR[], "RH", CDIR, .T., ANYOTHERS)
CDIR=CDIR+64
for IDX=0 to HOWMANY-1
if ctod(FDATE[IDX])>=ctod(M_DATE) .and. FNAME[IDX]<>"FILES.BBS" .and. FNAME[IDX]<>"FILES.BAK"
do ShowHeader
if READBBS()
? " Hatching: "+rtrim(FNAME[IDX])
BONNY=filerename(rtrim(M_HPFAD[I])+"\FILES.BBS",rtrim(M_HPFAD[I])+"\FILES.BMS")
if BONNY=0
? " Renamed : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
M_COMMAND="HATCH /r0 /a"+rtrim(M_HNAME[I])+" /f"+rtrim(FNAME[IDX])+" /ON /d"+rtrim(M_DESC)
run M_COMMAND
BONNY=filedelete(rtrim(M_HPFAD[I])+"\FILES.BBS")
if BONNY=0
? " Deleted : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
else
? " Not deleted : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
? " with errorlevel : "+str(BONNY,2,0)
endif
BONNY=filerename(rtrim(M_HPFAD[I])+"\FILES.BMS",rtrim(M_HPFAD[I])+"\FILES.BBS")
if BONNY=0
? " Renamed : "+rtrim(M_HPFAD[I])+"\FILES.BMS"
else
? " Not renamed : "+rtrim(M_HPFAD[I])+"\FILES.BMS"
? " with errorlevel : "+str(BONNY,2,0)+chr(7)
endif
else
? " Not renamed : "+rtrim(M_HPFAD[I])+"\FILES.BBS"
? " with errorlevel : "+str(BONNY,2,0)+chr(7)
endif
else
? " "+rtrim(M_HPFAD[I])+"\FILES.BBS not found !!!"+chr(7)
? " File not found : "+FNAME[IDX]
? " File NOT hatched"
endif
endif
inkey()
if lastkey()=&K_ESC
quit
endif
next
until .not. anyothers
endpro
*
*-------------------------------------------------------------------------------
* Prozedur: Hauptprogramm
*
procedure FORCE_MAIN
parameters char OVERCOME
OVERGOT=upper(rtrim(ltrim(OVERCOME)))
on error do ERROR_PROC
do scrn_direct
set delimiters on
set date german
set status off
set scoreboard off
do ShowHeader
if .not. ReadCfg() && Wenn kein CFG-File
?
? "Fehler: Datei AUTOHTC.CFG wurde nicht gefunden !!"
?
quit && Abbruch
endif
M_DATE=fgetdate("AUTOHTC.CFG") && Letztes Hatch-Datum
M_TRENN=trim(M_HPFAD[0]) && Trennzeichen für Downloadcounter
if OVERGOT="" && Wenn keine Parameter beim Aufruf
I=1
do while I<M_AHATCH && Aus allen Areas hatchen
do HATCH && Hatchen
I=I+1
enddo
ok=fsetdate("AUTOHTC.CFG",dtoc(today()))
else
M_HNAME[1]=alltrim(substr(OVERGOT,at(chr(32),OVERGOT),20))
M_HPFAD[1]=substr(OVERGOT,1,at(chr(32),OVERGOT)-1)
if M_HNAME[1]="" .or. M_HPFAD[1]=""
?
? "Fehler: Falsche Pfadangabe !!"
?
? "Beispiel: AUTOHTC <DOS-Pfad> <TagName>"
? " AUTOHTC e:\sdsra SDSRA"
?
quit
endif
M_DATE="01.01.80" && Hatchdatum
I=1
do HATCH && Hatchen
endif
set color to "W/N"
clear
endpro